package com.oig.sys.msg.im.handler;

import com.oig.sys.msg.vo.NoticeMsgVo;
import org.springframework.beans.factory.annotation.Autowired;

import javax.annotation.PostConstruct;

/**
 * 发送各个渠道的handler
 */
public abstract class BaseHandler {
    @Autowired
    private HandlerHolder handlerHolder;

    /**
     * 标识渠道的Code
     * 子类初始化的时候指定
     */
    protected String channelCode;

    /**
     * 初始化渠道与Handler的映射关系
     */
    @PostConstruct
    private void init() {
        handlerHolder.putHandler(channelCode, this);
    }

    /**
     * 统一处理的handler接口
     */
    public abstract boolean handler(NoticeMsgVo noticeMsg);


}
